//
// Created by longyunbo on 6/23/21.
//

#ifndef ANALYSIS_FIELDINFO_H
#define ANALYSIS_FIELDINFO_H
#define PropertyBuilderByName(type, name, access_permission)\
access_permission:\
    type m_##name;\
public:\
inline void set##name(type v) {\
    m_##name = v;\
}\
inline type get##name() {\
    return m_##name;\
}\

#include "CodeAttributeInfo.h"

class FieldInfo {

public:
    short accessFlag;
    PropertyBuilderByName(short,accessFlag,public);
    short nameIndex;
    PropertyBuilderByName(short,nameIndex,public);
    short descriptorIndex;
    PropertyBuilderByName(short,descriptorIndex,public);
    short attributeCount;
    PropertyBuilderByName(short,attributeCount,public);

//    CodeAttributeInfo* attributes;
//
//    void initCodeAttributeInfo(short attributeCount);
//    void setAttributes( CodeAttributeInfo* value );
//    CodeAttributeInfo* getAttributes();
};


#endif //ANALYSIS_FIELDINFO_H
